package com.doit.day03

import scala.io.Source

object _03_平均温度练习 {
  def main(args: Array[String]): Unit = {
    val d1 = Array(("beijing", 28.1), ("shanghai", 28.7), ("guangzhou", 32.0), ("shenzhen", 31.0))
    val d2 = Array(("beijing", 27.3), ("shanghai", 30.1), ("guangzhou", 33.3))
    val d3 = Array(("beijing", 28.2), ("shanghai", 29.1), ("guangzhou", 32.0), ("shenzhen", 32.0))

    //求每个城市三天的平均温度
    //1.干啥   全部放到一个集合中去
    val allData: Array[(String, Double)] = d3 ++ d2 ++ d1
    //2.干啥 按照城市进行分组
  /*  val map: Map[String, Array[(String, Double)]] = allData.groupBy(_._1)

    //3.干啥 求平均温度会吗？
    val res: Map[String, Double] = map.map(tp => {
      val city: String = tp._1
      //tp._2  这个数组里面放的是相同的城市和对应的温度
      val arr: Array[(String, Double)] = tp._2
      //本身数组里面的元素是(城市，温度) ==》 只需要取温度 Array(温度1，温度2，温度3....)
      val wendu: Array[Double] = arr.map(_._2)
      (city, (wendu.sum / wendu.size).formatted("%.2f").toDouble)
    })

    res.foreach(println)*/
    allData.groupBy(_._1)
      .map(tp=>{
        (tp._1,(tp._2.map(_._2).sum/tp._2.size).formatted("%.2f").toDouble)
      })
      .foreach(println)

    Source.fromFile("data/input/word.txt")
      .getLines()
      .toList
      .flatMap(_.split(","))
      .groupBy(word=>word)
      .map(tp=>{(tp._1,tp._2.size)})
      .foreach(println)
    

  }

}
